using uTorrentNetClient.ModelDesign.OptionalConverter;

namespace uTorrentNetClient.ModelDesign.Helper
{
    public class SettingsGroupMapping : Base
    {
        public SettingsGroupMapping()
        {
            Hide = false;
        }

        public SettingsGroupMapping(string group, int groupPosition, string key, int position, string name, bool hide, ConverterType converter, SettingsValueType valueType)
        {
            Group = group;
            GroupPosition = groupPosition;
            Key = key;
            Position = position;
            Name = name;
            Hide = hide;
            Converter = converter;
            ValueType = valueType;
        }

        private string _group;
        public string Group
        {
            get { return _group; }
            set
            {
                _group = value;
                SetNotifyPropertyChanged("Group");
            }
        }

        private int _groupPosition;
        public int GroupPosition
        {
            get { return _groupPosition; }
            set
            {
                _groupPosition = value;
                SetNotifyPropertyChanged("GroupPosition");
            }
        }

        private string _key;
        public string Key
        {
            get { return _key; }
            set
            {
                _key = value;
                SetNotifyPropertyChanged("Key");
            }
        }

        private int _position;
        public int Position
        {
            get { return _position; }
            set
            {
                _position = value;
                SetNotifyPropertyChanged("Position");
            }
        }

        private string _name;
        public string Name
        {
            get { return _name; }
            set
            {
                _name = value;
                SetNotifyPropertyChanged("Name");
            }
        }

        private bool _hide;
        public bool Hide
        {
            get { return _hide; }
            set
            {
                _hide = value;
                SetNotifyPropertyChanged("Hide");
            }
        }

        private ConverterType _converter;
        public ConverterType Converter
        {
            get { return _converter; }
            set
            {
                _converter = value;
                SetNotifyPropertyChanged("Converter");
            }
        }

        private SettingsValueType _valueType;
        public SettingsValueType ValueType
        {
            get { return _valueType; }
            set
            {
                _valueType = value;
                SetNotifyPropertyChanged("ValueType");
            }
        }
    }
}